
<?php
    
    @header('Content-type:text/html;charset=utf-8');
    @include_once('../php/conn.php');
    @include_once('../php/noparams.php');

    $key = $_GET["key"];  // 搜索的关键字  goodsName  
    $orderCol = $_GET['orderCol']; //  全局变量 默认的排序字段 
    $orderType = $_GET['orderType'];   // 全局变量 默认的排序类型  aec 升序  desc 降序  
    $pageIndex = $_GET['pageIndex'];   // 页码
    $pageNum = $_GET['pageNum'];     // 每页显示多少条


    if(!($orderCol&&$orderType)){   // $key 允许为 空 null 不一定需要 去掉 
        NoParamsErr();
    }


    // 分页 
    // 477 条
    // pageIndex  页码
    // pageNum pageNum 
    // 第一页   0 - 10
    // 第2页   10 - 10
    // 第3页   20 - 10
    // 第4页   30 - 10
    // 第5页   40 - 10
    // 第几页  跳过条数  显示条数 
    // 规律   limit (pageIndex-1) * pageNum  , pageNum

    // 问题  数量有限  477条
    // pageIndex 范围判断  
    // 最小(1)
    // 最大 值  
    // 总数 (477) / pageNum 10   => 向上取整 48 
    // 总数 (477) / pageNum 20   => 向上取整 24 
    
    // limit 20 40 ;  跳过前面20条显示 40条数据

    // 查询满足条件的总数据 
    $searchAll = "select count(*) as total  FROM `goodslist` where goodsName like '%$key%'";
    $resultAll = mysqli_query($conn,$searchAll);

    if(!$resultAll){
        $obj = array();
        $obj['status'] = false;
        $obj['detail'] = "sql语句有问题";
        $obj['sql']  = $searchAll;
        exit(json_encode($obj));
    }

    $item = mysqli_fetch_assoc($resultAll);  // 去解析一下数据
    $total = $item['total']; // 总条数 

    if($total==0){
        $obj = array();
        $obj['status'] = false;
        $obj['detail'] = "暂无数据";
        $obj['sql']  = $searchAll;
        exit(json_encode($obj));
    }

    // 先求出总条数 
    // 再去求出当前页码的数据 
    // $sql = "SELECT id , goodsId ,goodsName,goodsImg , goodsPrice , smallPicList, bigPicList ,goodsDetail  FROM `goodslist` where goodsName like '%$key%'  order by $orderCol  $orderType  ";

    // 总条数 
    // 最小页码 1
    // 最大页码  
    $maxPage = ceil($total / $pageNum);
    $pageIndex = $pageIndex>$maxPage ? $maxPage: $pageIndex;
    $pageIndex = $pageIndex<1?1:$pageIndex;

    // 跳过多少条
    $skipNum = ($pageIndex -  1) *  $pageNum;

    $sql = "SELECT id , goodsId ,goodsName,goodsImg , goodsPrice , smallPicList, bigPicList ,goodsDetail  FROM `goodslist` where goodsName like '%$key%'  order by $orderCol  $orderType  limit $skipNum , $pageNum  ";
    $result = mysqli_query($conn,$sql);

    if(!$result){
        $obj = array();
        $obj['status'] = false;
        $obj['detail'] = "sql语句有问题";
        $obj['sql']  = $sql;
        exit(json_encode($obj));
    }
    // 解析数据 将数据赋值给 某一个变量 $item(循环条件) 每次解析一条  有数据=>关联数组  解析失败 false  (有数据继续执行 没有数据直接跳出) 
    $all = array();
    while($item = mysqli_fetch_assoc($result)){
        array_push($all,$item);
    }
    // print_r($all);

    // 查询  
    // $all 是否有数据 判断长度 
    $obj = array();
    if(count($all)){   // length > 0 
        $obj["status"] = true;
        $obj["detail"] = '查询成功 - success';
        $obj["total"] = $total;   //总数
        $obj["maxPage"] = $maxPage; // 总页数 
        $obj["result"] = $all;
    }else{
        $obj["status"] = false;
        $obj["detail"] = '查询失败 - fail';
    } 

    echo json_encode($obj);


?>